function(dbg)
  set(args ${ARGN})
  list_extract_flag(args --indented)
  ans(indented)
  if(NOT args)
    set(last_return_value "${__ans}")
    set(args last_return_value)
  endif()
  if("${args}")
    is_map("${${args}}")
    ans(ismap)
    if(ismap)
      if(indented)
        json_indented("${${args}}")
      else()
        json("${${args}}")
      endif()
      ans("${args}")
    endif()
    dbg("${args}: '${${args}}'")
    return()
  endif()
  list_length(args)
  ans(len)
  if("${len}" EQUAL 1)
    is_map("${args}")
    ans(ismap)
    if(ismap)  
      if(indented)
        json_indented("${args}")
      else()
        json("${args}")
      endif()
      ans("${args}")

    endif()
    message(FORMAT "dbg (${__function_call_func}): '${args}'")
    return()
  endif()

  foreach(arg ${args})
    dbg("${arg}")
  endforeach()

  return()
endfunction()